package tedu.api.collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortString {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("王克晶");
        list.add("国斌老师");
        list.add("传奇。。。。。。。。。。");
        System.out.println(list);

        Collections.sort(list);
        System.out.println("默认排序"+list);

        /*
            compare()方法用于定义o1和o2比较大小的规则，并且返回值表达大小关系
            返回值实现的要求：
            1)如果返回值>0则表达的是o1>o2
            2)如果返回值<0则表达的是o1<o2
            3)如果返回值=0则表达的是o1=o2
            结论：
            前面-后面，升序
            后面-前面，降序
             */
        Collections.sort(list,(o1, o2)->o1.length()-o2.length());//升序
        //o2.length()-o1.length();//降序
        System.out.println("手写规则"+list);



        /*
        List<String> list = new ArrayList<>();
        list.add("jack");
        list.add("rose");
        list.add("tom");
        list.add("jerry");
        list.add("black");
        list.add("Kobe");
        list.add("jerr");
        System.out.println("list----原始:"+list);

        //对英文字符排序时，会按首字母的ASCII码来排
        //若首字母相同，则比较第二个字母的ASCII码，以此类推
        Collections.sort(list);
        System.out.println("list----排序："+list);

         */

    }
}













